//@include lib_Class.js
//@include lib_sol.common.JsonUtils.js
//@include lib_sol.common.RepoUtils.js
//@include lib_sol.common.SordUtils.js
//@include lib_sol.common.CounterUtils.js
//@include lib_sol.common.Template.js
//@include lib_sol.common.WfUtils.js
//@include lib_sol.common.ix.RfUtils.js
//@include lib_sol.common.ix.FunctionBase.js
//@include lib_sol.common.ix.functions.GenerateIdentifier.js
//@include lib_sol.contract.mixins.Configuration.js
//@include lib_sol.common.Injection.js
var logger = sol.create("sol.Logger", { scope: "sol.contract.ix.functions.generators.GenerateClauseId" });
/**
* @author ELO Digital Office GmbH
* @version 1.0
*
* Generates an ID for a document
*
* @requires sol.common.JsonUtils
* @requires sol.common.RepoUtils
* @requires sol.common.SordUtils
* @requires sol.common.CounterUtils
* @requires sol.common.Template
* @requires sol.common.WfUtils
* @requires sol.common.ix.RfUtils
* @requires sol.common.ix.FunctionBase
* @requires sol.common.ix.functions.GenerateIdentifier
* @requires sol.contract.mixins.Configuration
* @requires sol.common.Injection
*/
sol.define("sol.contract.ix.functions.generators.GenerateClauseId", {
extend: "sol.common.ix.functions.GenerateIdentifier",
/** @cfg {String} objId (required)
* Object ID
*/
mixins: ["sol.contract.mixins.Configuration", "sol.common.mixins.Inject"],
inject: {
templateField: { config: "contract", prop: "clauses.functions.generateClauseId.generatorTemplateField" },
templateFolder: { config: "contract", prop: "clauses.functions.generateClauseId.templatesFolder" },
targetField: { config: "contract", prop: "clauses.functions.generateClauseId.targetField" }
},
/**
* @inheritdoc sol.common.ix.functions.GenerateIdentifier#getIdentifierTemplateId
*/
getIdentifierTemplateId: function () {
var me = this;
return me.getTemplateId("Clause ID", me.templateField, me.templateFolder);
},
/**
* @inheritdoc sol.common.ix.functions.GenerateIdentifier#getIdentifier
*/
getIdentifier: function () {
var me = this;
if (!me.targetField) {
throw "getIdentifier(): Clause ID field name must not be empty.";
}
return sol.common.SordUtils.getObjKeyValue(me.sord, me.targetField);
},
/**
* @inheritdoc sol.common.ix.functions.GenerateIdentifier#setIdentifier
*/
setIdentifier: function (No) {
var me = this;
if (!me.targetField) {
throw "setIdentifier(): Clause ID. field name must not be empty.";
}
sol.common.SordUtils.setObjKeyValue(me.sord, me.targetField, No.trim());
}
});
/**
* @member sol.common.ix.functions.generators.GenerateFileReference
* @static
* @inheritdoc sol.common.ix.FunctionBase#onEnterNode
*/
function onEnterNode(clInfo, userId, wFDiagram, nodeId) {
logger.enter("onEnterNode_GenerateClauseId", { flowId: wFDiagram.id, nodeId: nodeId });
var params = sol.common.WfUtils.parseAndCheckParams(wFDiagram, nodeId),
genProc;
params.objId = wFDiagram.objId;
params.flowId = wFDiagram.id;
genProc = sol.create("sol.contract.ix.functions.generators.ClauseId", params);
genProc.process();
logger.exit("onEnterNode_GenerateClauseId");
}
/**
* @member sol.common.ix.functions.generators.GenerateFileReference
* @static
* @inheritdoc sol.common.ix.FunctionBase#onExitNode
*/
function onExitNode(clInfo, userId, wFDiagram, nodeId) {
logger.enter("onExitNode_GenerateClauseId", { flowId: wFDiagram.id, nodeId: nodeId });
var params = sol.common.WfUtils.parseAndCheckParams(wFDiagram, nodeId),
genProc;
params.objId = wFDiagram.objId;
params.flowId = wFDiagram.id;
genProc = sol.create("sol.contract.ix.functions.generators.GenerateClauseId", params);
genProc.process();
logger.exit("onExitNode_GenerateClauseId");
}